1
直接的なAPI呼び出しからLangChainの抽象化へ
AI010Lesson 5
00:00

原始的なリクエストを超えて

大規模言語モデル(LLM)を始めると、開発者は通常、OpenAIのPythonライブラリなど直接的なAPI呼び出しを使ってプロンプトを送信し、完了レスポンスを受け取ります。機能的には問題ありませんが、アプリケーションが拡大するにつれてこのアプローチは管理できなくなります。

状態の無さという問題

大規模言語モデルは本質的に状態を持たないです。メッセージを送るたびに、モデルは「あなたが誰か」やこれまでに何を言ったかを忘れてしまいます。各インタラクションは完全な空白の状態です。会話を維持するには、毎回すべての履歴を手動でモデルに戻す必要があります。

LangChainによる解決策

LangChainはChatOpenAIというモデルラッパーを導入します。これは単なるラッパーというだけではなく、モジュール性の基盤です。モデル呼び出しを抽象化することで、後でモデルを交換したり、メモリを注入したり、テンプレートを使用したりしても、コードベース全体を書き直さずに済みます。

海賊のシナリオ
「海賊風」のスラングで書かれた顧客メールを想像してみてください。これをフォーマルな企業向けの返信に翻訳するためには、直接的なAPI呼び出しでは指示をハードコーディングする必要があります。一方、LangChainを使えば、「スタイル」(海賊風対フォーマル)と「内容」(メール本文)を抽象化によって分離できます。
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>
Question 1
Why do we say LLMs are "stateless"?
They do not have access to the internet.
They cannot generate the same response twice.
They do not inherently remember previous messages in a conversation.
They are only capable of processing text, not data states.
Challenge: Initialize ChatOpenAI
Solve the problem below.
You are building a creative writing assistant and need to initialize your first LangChain model.

Your task is to create a ChatOpenAI instance named my_llm with a temperature of 0.7 to allow for more creative (non-deterministic) responses.
Task
Write the Python code to import and initialize the model.
Solution:
from langchain_openai import ChatOpenAI
my_llm = ChatOpenAI(temperature=0.7)